home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mission 3
/
Mission 3.zip
/
Mission 3.iso
/
zugabe
/
va45
/
visual45
/
objstruc.mac
< prev
next >
Wrap
Text File
|
1998-09-06
|
25KB
|
871 lines
*-----------------------------------------------------------------------------*
* Macros définissant l'entête d'un objet V.A *
*-----------------------------------------------------------------------------*
GWVA_OBJ_STRUCT_HEAD: macro CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
IFNC "\3","" ; guillemets car chaine de caracs
dc.l \3 ; GWVA_OBJ_NAME
ELSE
dc.l '_Obj' ; GWVA_OBJ_NAME
ENDC
dc.w \1 ; GWVA_OBJ_CLASS
dc.w GWVA_OBJ_CTE_HANDLE_UNDEF ; GWVA_OBJ_HANDLE
IFNC '\5',''
dc.w \5 ; GWVA_OBJ_PROPERTIES
ELSE
dc.w 0 ; GWVA_OBJ_PROPERTIES
ENDC
IFNC '\2',''
dc.l \2 ; GWVA_OBJ_METHODLIST_PTR
ELSE
dc.l GWVA_OBJ_CTE_METHODLISTPTR_UNDEF ; GWVA_OBJ_METHODLIST_PTR
ENDC
IFNC '\4',''
dc.l \4 ; GWVA_OBJ_SHORTCUTLIST_PTR
ELSE
dc.l 0 ; GWVA_OBJ_SHORTCUTLIST_PTR
ENDC
endm
GWVA_OBJ_STRUCT_FAMILY: macro ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
IFNC '\1',''
dc.l \1 ; GWVA_OBJ_FATHER_PTR
ELSE
dc.l 0 ; GWVA_OBJ_FATHER_PTR
ENDC
IFNC '\2',''
dc.l \2 ; GWVA_OBJ_NEXT_BROTHER_PTR
ELSE
dc.l 0 ; GWVA_OBJ_NEXT_BROTHER_PTR
ENDC
IFNC '\3',''
dc.l \3 ; GWVA_OBJ_FIRST_SON_PTR
ELSE
dc.l 0 ; GWVA_OBJ_FIRST_SON_PTR
ENDC
endm
*-----------------------------------------------------------------------------*
* Macros définissant la liste des méthodes de l'objet *
*-----------------------------------------------------------------------------*
* Macros définissant les shortcuts
GWVA_VAR_NEXT_SHORTCUT set 0
GWVA_NEXT_SHORTCUT_DIRECT: macro KEY
GWVA_VAR_NEXT_SHORTCUT set \1
endm
GWVA_NEXT_SHORTCUT_CONTROL: macro KEY
IFGE \1-'a'
GWVA_VAR_NEXT_SHORTCUT set \1-'a'+1
IFEQ (\1-'i')*(\1-'m')
ifd OPT_GWVA_DEBUG_PRINT_COMMENTS
LIST
; V.A. WARNING *** The Shortcuts ^i and ^m are confusing with [TAB] and [Enter]
NOLIST
endc
ENDC
ELSE
GWVA_VAR_NEXT_SHORTCUT set \1-'A'+1
IFEQ (\1-'I')*(\1-'M')
ifd OPT_GWVA_DEBUG_PRINT_COMMENTS
LIST
; V.A. WARNING *** The Shortcuts ^I and ^M are confusing with [TAB] and [Enter]
NOLIST
endc
ENDC
ENDC
endm
GWVA_NEXT_SHORTCUT_ALTERNATE: macro KEY
GWVA_VAR_NEXT_SHORTCUT set K_ALT<<8+\1
endm
*--------------------------------*
GWVA_OBJ_STRUCT_METHOD: macro METHODE,ROUTINE;CLASS;PROPERTIES
dc.l \1 ; GWVA_OBJ_METHODLIST_ITEM_METHOD
IFNC '\3',''
dc.w \3 ; GWVA_OBJ_METHODLIST_ITEM_CLASS
ELSE
dc.w GWVA_OBJ_CTE_BEFORE_AFTER_ON_OBJECT_CLASS ; GWVA_OBJ_METHODLIST_ITEM_CLASS
ENDC
IFNC '\4',''
dc.w \4 ; GWVA_OBJ_METHODLIST_ITEM_PROPERTIES
ELSE
dc.w 0 ; GWVA_OBJ_METHODLIST_ITEM_PROPERTIES
ENDC
dc.l \2 ; GWVA_OBJ_METHODLIST_ITEM_ROUTINE
endm
GWVA_OBJ_STRUCT_METHOD_END_LIST: macro
GWVA_OBJ_STRUCT_METHOD GWVA_OBJ_CTE_END_METHOD_LIST,0
endm
*-----------------------------------------------------------------------------*
* Macros définissant la liste des shortcut des méthodes de l'objet *
*-----------------------------------------------------------------------------*
GWVA_OBJ_STRUCT_SHORTCUT:macro METHOD,SHORTCUT
IFNC '\2',''
dc.w \2 ; GWVA_OBJ_SHORTCUTLIST_ITEM_SHORTCUT
ELSE
dc.w GWVA_VAR_NEXT_SHORTCUT ; GWVA_OBJ_SHORTCUTLIST_ITEM_SHORTCUT
GWVA_VAR_NEXT_SHORTCUT set 0
ENDC
dc.l \1 ; GWVA_OBJ_SHORTCUTLIST_ITEM_METHOD
endm
GWVA_OBJ_STRUCT_SHORTCUT_END_LIST: macro
dc.w GWVA_ROOT_CTE_SHORTCUT_ENDS_LIST
endm
*-----------------------------------------------------------------------------------*
* Macros définissant la liste de correspondance classe->liste de méthode par défaut *
*-----------------------------------------------------------------------------------*
GWVA_OBJ_STRUCT_CLASSMETHOD: macro CLASS,DEFAULTMETHOD_PTR
dc.w \1 ; GWVA_OBJ_CLASSLIST_ITEM_CLASS
dc.l \2 ; GWVA_OBJ_CLASSLIST_ITEM_DEFAULTMETHOD_PTR
endm
GWVA_OBJ_STRUCT_CLASSMETHOD_END_LIST: macro
GWVA_OBJ_STRUCT_CLASSMETHOD GWVA_OBJ_CTE_END_CLASS_LIST,GWVA_OBJ_CTE_END_LINK_CLASS_LIST
endm
*-----------------------------------------------------------------------------*
* Macros définissant la liste d'héritage des classes *
*-----------------------------------------------------------------------------*
GWVA_OBJ_STRUCT_INHERITANCE: macro NEWCLASS,OLDCLASS
IFNC '\1','GWVA_OBJ_CTE_END_INHERITANCE_LIST'
\1 = _GWVA_VAR_CLASS_COUNTER
_GWVA_VAR_CLASS_COUNTER set _GWVA_VAR_CLASS_COUNTER+1
ENDC
dc.w \1 ; GWVA_OBJ_INHERITANCELIST_ITEM_NEWCLASS
IFNC '\2',''
dc.w \2 ; GWVA_OBJ_INHERITANCELIST_ITEM_OLDCLASS
ELSE
dc.w GWVA_OBJ_CTE_CLASS_UNDEF ; GWVA_OBJ_METHODLIST_ITEM_PROPERTIES
ENDC
endm
GWVA_OBJ_STRUCT_INHERITANCE_END_LIST: macro
GWVA_OBJ_STRUCT_INHERITANCE GWVA_OBJ_CTE_END_INHERITANCE_LIST,GWVA_OBJ_CTE_END_INHERITANCE_LIST
dc.l GWVA_OBJ_CTE_END_LINK_INHERITANCE_LIST ; ruse de folie à changer si possible
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet fenêtre *
*-----------------------------------------------------------------------------*
*GWVA_WIND_STRUCT_HEAD: macro CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
* GWVA_OBJ_STRUCT_HEAD \1,\2,\4,\3
* GWVA_OBJ_STRUCT_FAMILY \5,\6,\7
* endm
GWVA_WIND_STRUCT_BASE: macro FLAGS,PROPERTIES,NAME_PTR,INFO_PTR;TOPABLE_STATE
dc.w \1 ; FLAGS
dc.w 0 ; STATUS
dc.l \2 ; PROPERTIES
IFNC '\5',''
dc.w \5 ; TOPABLE_STATE
ELSE
dc.w 0 ; TOPABLE_STATE
ENDC
dc.l \3,\4 ; NAME_PTR,INFO_PTR
endm
GWVA_WIND_STRUCT_DEF_EXTEND: macro ;ICON_WIND_PTR;MENU_SPEC_PTR;MOUSE_SPEC_PTR
IFNC '\1',''
dc.l \1 ; ICON_WIND_PTR
ELSE
dc.l 0 ; ICON_WIND_PTR
ENDC
dc.l 0 ; FOCUSED_CHILD_PTR
IFNC '\3',''
dc.l \3 ; MOUSE_SPEC_PTR
ELSE
dc.l 0 ; MOUSE_SPEC_PTR
ENDC
IFNC '\2',''
dc.l \2 ; MENU_SPEC_PTR
ELSE
dc.l 0 ; MENU_SPEC_PTR
ENDC
dc.w 0 ; MENU_HEIGHT
endm
GWVA_WIND_STRUCT_FIRST_GEOMETRY: macro FIRST_EXT_DX,FIRST_EXT_DY;
; ;FIRST_INT_VISIBLE_W,FIRST_INT_VISIBLE_H
; ;FIRST_CONTENTS_W,FIRST_CONTENTS_H
; ;FIRST_CONTENTS_DX,FIRST_CONTENTS_DY
; ;FIRST_INT_BORDERS_W,FIRST_INT_BORDERS_H
dc.w \1 ; FIRST_EXT_DX
dc.w \2 ; FIRST_EXT_DY
IFNC '\3',''
dc.w \3,\4 ; FIRST_INT_VISIBLE_W,FIRST_INT_VISIBLE_H
ELSE
dc.w GWVA_WIND_CTE_SIZE_UNDEF,GWVA_WIND_CTE_SIZE_UNDEF ; FIRST_INT_VISIBLE_W,FIRST_INT_VISIBLE_H
ENDC
IFNC '\7',''
dc.w \7,\8 ; FIRST_CONTENTS_DX,FIRST_CONTENTS_DY
ELSE
dc.w 0,0 ; FIRST_CONTENTS_DX,FIRST_CONTENTS_DY
ENDC
IFNC '\5',''
dc.w \5,\6 ; FIRST_CONTENTS_W,FIRST_CONTENTS_H
ELSE
dc.w GWVA_WIND_CTE_SIZE_UNDEF,GWVA_WIND_CTE_SIZE_UNDEF ; FIRST_CONTENTS_W,FIRST_CONTENTS_H
ENDC
IFNC '\9',''
dc.w \9,\A ; FIRST_INT_BORDERS_W,FIRST_INT_BORDERS_H
ELSE
IFNC '\7',''
dc.w \7,\8 ; =FIRST_CONTENTS_DX,FIRST_CONTENTS_DY (pour éviter une erreur)
ELSE
dc.w 0,0 ; FIRST_INT_BORDERS_W,FIRST_INT_BORDERS_H
ENDC
ENDC
dcb.w 10,GWVA_WIND_CTE_FIELD_UNDEF ; INT_DX,INT_DY,INT_VISIBLE_W,INT_VISIBLE_H
; CONTENTS_DX,CONTENTS_DY,CONTENTS_W,CONTENTS_H
; INT_BORDERS_W,INT_BORDERS_H
endm
GWVA_WIND_STRUCT_USER: macro ;USER_PTR1;USER_PTR2
IFNC '\1',''
dc.l \1 ; USER_PTR1
ELSE
dc.l 0 ; USER_PTR1
ENDC
IFNC '\2',''
dc.l \2 ; USER_PTR2
ELSE
dc.l 0 ; USER_PTR2
ENDC
dc.w GWVA_WIND_CTE_HANDLE_UNDEF ; GEM_HANDLE
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet fenêtre application principale *
*-----------------------------------------------------------------------------*
GWVA_WAPP_STRUCT_BASE: macro PROPERTIES,REG_NAME,ACC_NAME,RSC_INFO;TSR_SIZE
dc.w \1 ; PROPERTIES
dc.l \2 ; REG_NAME
dc.l \3 ; ACC_NAME
dc.l \4 ; RSC_INFO
IFNC '\5',''
dc.l \5 ; TSR_SIZE
ELSE
dc.l 0 ; TSR_SIZE
ENDC
endm
GWVA_WAPP_STRUCT_BACKGROUND: macro ;BACKGROUND_WIND_PTR
IFEQ \#
dc.l 0 ; BACKGROUND_WIND_PTR
ELSE
dc.l \1 ; BACKGROUND_WIND_PTR
ENDC
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet fenêtre bitmap *
*-----------------------------------------------------------------------------*
GWVA_WBITM_STRUCT_BASE: macro ;PROPERTIES;NB_BITPLANES;IMG_WIDTH,IMG_HEIGHT;DATA_PTR;PAL_PTR
IFNC '\1',''
dc.w \1 ; PROPERTIES
ELSE
dc.w 0 ; PROPERTIES
ENDC
IFNC '\3',''
dc.w \3,\4 ; IMG_WIDTH,IMG_HEIGHT
ELSE
dc.w 0,0 ; IMG_WIDTH,IMG_HEIGHT
ENDC
IFNC '\5',''
dc.l \5 ; DATA_PTR
ELSE
dc.l 0 ; DATA_PTR
ENDC
IFNC '\6',''
dc.l \6 ; PAL_PTR
ELSE
dc.l 0 ; PAL_PTR
ENDC
IFNC '\2',''
dc.w \2 ; NB_BITPLANES
ELSE
dc.w 0 ; NB_BITPLANES
ENDC
dcb.w 2,0 ; AFF_DX,AFF_DY
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet fenêtre texte *
*-----------------------------------------------------------------------------*
GWVA_WTEXT_STRUCT_BASE: macro NB_COLONNES,NB_LIGNES;FNT_SIZE
dc.w 0 ; PROPERTIES
dc.w \1,\2 ; NB_COLONNES,NB_LIGNES
IFNC '\3',''
dc.w \3 ; FNT_SIZE
ELSE
dc.w 13 ; FNT_SIZE
ENDC
dcb.w 2,0 ; CELL_WIDTH,CELL_HEIGHT
dc.l 0 ; MALOC
dcb.w 8,0 ; CUR_BUF_COL,CUR_BUF_LIGN,CUR_AFF_COL,CUR_AFF_LIGN,BUF_COLONNE,BUF_LIGNE,AFF_COLONNE,AFF_LIGNE
ifd MDL_WIND_STYLIZED_EDITABLE_TEXT
dc.l 0 ; MALLOC_STYLE
dcb.w 4,0 ; TABLE_PALETTE
dc.b 0 ; CURRENT_STYLE
dc.b 0 ; CURRENT_MODE
dc.w 0 ; CURRENT_XPOS
dc.w 0 ; CURRENT_YPOS
dc.l 0 ; SPECIAL_DRAWING
endc
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet fenêtre ressource *
*-----------------------------------------------------------------------------*
GWVA_WRSC_STRUCT_BASE: macro TREE;PROPERTIES;IDX;DEPTH
IFNC '\2',''
dc.w \2 ; PROPERTIES
ELSE
dc.w 0 ; PROPERTIES
ENDC
dc.w \1 ; TREE
IFNC '\3',''
dc.w \3 ; IDX
ELSE
dc.w 0 ; IDX
ENDC
IFNC '\4',''
dc.w \4 ; DEPTH
ELSE
dc.w 7 ; DEPTH
ENDC
dc.l 0 ; TREE_PTR
endm
GWVA_WRSC_STRUCT_CLONE: macro ;IS_CLONE_FORM,CLONE_MAIN_PTR;CLONE_FORM_SAVE
IFNC '\1',''
dc.w \1 ; IS_CLONE_FORM
dc.l \2 ; CLONE_MAIN_PTR
ELSE
dc.w 0 ; IS_CLONE_FORM
dc.l 0 ; CLONE_MAIN_PTR
ENDC
IFNC '\3',''
dc.l \3 ; CLONE_FORM_SAVE
ELSE
dc.l 0 ; CLONE_FORM_SAVE
ENDC
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet fenêtre popup ressource *
*-----------------------------------------------------------------------------*
GWVA_WRSCPOPUP_STRUCT_BASE: macro ATTACHED_OBJECT,SELECTED_METHOD;PROPERTIES
IFNC '\3',''
dc.w \3 ; PROPERTIES
ELSE
dc.w 0 ; PROPERTIES
ENDC
dc.w -1 ; SELECTED_ITEM_IDX
dc.w -1 ; CURRENT_ITEM_IDX
dc.l \1 ; ATTACHED_OBJECT
dc.l \2 ; SELECTED_METHOD
endm
*-----------------------------------------------------------------------------*
* Macros définissant les objets fenêtres MENU *
*-----------------------------------------------------------------------------*
GWVA_RSC_STRUCT_BASE: macro TREE;PROPERTIES;IDX;DEPTH
IFNC '\2',''
dc.w \2 ; PROPERTIES
ELSE
dc.w 0 ; PROPERTIES
ENDC
dc.w \1 ; TREE
IFNC '\3',''
dc.w \3 ; IDX
ELSE
dc.w 0 ; IDX
ENDC
IFNC '\4',''
dc.w \4 ; DEPTH
ELSE
dc.w 7 ; DEPTH
ENDC
dc.l 0 ; TREE_PTR
endm
GWVA_RSC_STRUCT_CLONE: macro ;IS_CLONE_FORM,CLONE_MAIN_PTR;CLONE_FORM_SAVE
IFNC '\1',''
dc.w \1 ; IS_CLONE_FORM
dc.l \2 ; CLONE_MAIN_PTR
ELSE
dc.w 0 ; IS_CLONE_FORM
dc.l 0 ; CLONE_MAIN_PTR
ENDC
IFNC '\3',''
dc.l \3 ; CLONE_FORM_SAVE
ELSE
dc.l 0 ; CLONE_FORM_SAVE
ENDC
endm
GWVA_MENU_STRUCT_BASE: macro ;LIST_ATTACH_PTR;SCROLL_INDEX;PROPERTIES
IFNC '\3',''
dc.w \3 ; PROPERTIES
ELSE
dc.w 0 ; PROPERTIES
ENDC
dc.w 0 ; STATUS
IFNC '\2',''
dc.w \2 ; SCROLL_INDEX
ELSE
dc.w 0 ; SCROLL_INDEX
ENDC
IFNC '\1',''
dc.l \1 ; LIST_ATTACH_PTR
ELSE
dc.l 0 ; LIST_ATTACH_PTR
ENDC
dc.w -1 ; TITLE_SELECTED
dc.w -1 ; DROPDOWN_LIST_SELECTED
endm
*--------*
GWVA_SUBMENU_STRUCT_DEF:macro TREE_OBJ_ATTACHED,OBJ_IDX_ATTACHED,TREE,INDEX,WHICH_ALIGN;MENU_SCROLL
dc.w \1 ; TREE_ATTACHED
dc.w \2 ; IDX_ATTACHED
dc.w \3 ; TREE
dc.w \4 ; IDX
dc.w \5 ; WHICH_ALIGN
IFNC '\6',''
dc.w \6 ; SCROLL
ELSE
dc.w 0 ; SCROLL
ENDC
endm
*--------*
; Commun pour les menus et les sous-menus
GWVA_MENU_STRUCT_MNULIST: macro IDX,ROUTINE;SHORTCUT
IFNC "\3","" ; guillemets car chaine de caracs
dc.w \3 ; SHORTCUT
ELSE
dc.w GWVA_VAR_NEXT_SHORTCUT
GWVA_VAR_NEXT_SHORTCUT set 0
ENDC
dc.w \1 ; IDX
dc.l \2 ; ROUTINE
endm
GWVA_MENU_STRUCT_MNULIST_END: macro
dc.w GWVA_ROOT_CTE_SHORTCUT_ENDS_LIST ; SHORTCUT
endm
*-----------------------------------------------------------------------------*
* Macros définissant les objets fenêtres FORM *
*-----------------------------------------------------------------------------*
GWVA_WFORM_STRUCT_BASE: macro ;FIRST_FOCUSED_IDX;PROPERTIES
IFNC '\2',''
dc.w \2 ; PROPERTIES
ELSE
dc.w 0 ; PROPERTIES
ENDC
IFNC '\1',''
dc.w \1 ; FIRST_FOCUSED_OBJECT
ELSE
dc.w GWVA_WFORM_CTE_FOCUSED_IDX_UNDEF ; FIRST_FOCUSED_OBJECT
ENDC
dc.w GWVA_WFORM_CTE_FOCUSED_IDX_UNDEF ; FOCUSED_IDX
dc.w GWVA_WFORM_CTE_FOCUSED_IDX_CURSOR_POS_UNDEF ; FOCUSED_IDX_CURSOR_POS
endm
*-----------------------------------------------------------------------------*
*-----------------------------------------------------------------------------*
* Macros définissant les objets formulaires de base du V.A. *
*-----------------------------------------------------------------------------*
*-----------------------------------------------------------------------------*
*GWVA_FORM_OBJ_STRUCT_HEAD: macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;DEFAULT_METHODLIST_PTR
* IFNC '\7',''
* GWVA_OBJ_STRUCT_HEAD GWVA_OBJ_CLASS_FORM_OBJ,\7,\1,\3,\2
* ELSE
* GWVA_OBJ_STRUCT_HEAD GWVA_OBJ_CLASS_FORM_OBJ,GWVA_OBJ_CTE_METHODLISTPTR_UNDEF,\1,\3,\2
* ENDC
* GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
* endm
*GWVA_FORM_OBJ_STRUCT_BASE: macro CLASS;PROPERTIES
* IFNC '\2',''
* dc.w \2 ; PROPERTIES
* ELSE
* dc.w 0
* ENDC
* dc.w \1 ; CLASS
* endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet formulaire. *
*-----------------------------------------------------------------------------*
GWVA_FORM_STRUCT_HEAD: macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM,\1,\2,\3,\7
; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
endm
GWVA_FORM_STRUCT_BASE: macro ;PROPERTIES
IFNC '\1',''
dc.w \1 ; PROPERTIES
ELSE
dc.w 0
ENDC
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet formulaire bouton. *
*-----------------------------------------------------------------------------*
GWVA_FBTON_STRUCT_HEAD: macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.BUTTON,\1,\2,\3,\7
; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
; ;PROPERTIES
GWVA_FORM_STRUCT_BASE
endm
GWVA_FBTON_STRUCT_BASE: macro MAIN_IDX;PROPERTIES;STATE
IFNC '\2',''
dc.w \2 ; PROPERTIES
ELSE
dc.w 0 ; PROPERTIES
ENDC
dc.w \1 ; MAIN_IDX
dc.l 0 ; MAIN_PTR
IFNC '\3',''
dc.w \3 ; STATE
ELSE
dc.w 0 ; STATE
ENDC
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet formulaire progress bar *
*-----------------------------------------------------------------------------*
GWVA_FPBAR_STRUCT_HEAD: macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.PROGRESS_BAR,\1,\2,\3,\7
; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
; ;PROPERTIES
GWVA_FORM_STRUCT_BASE
endm
GWVA_FPBAR_STRUCT_BASE: macro FATHER_IDX,SON_IDX;TEXT_IDX
dc.w -1 ; PERCENT
IFNC '\3',''
dc.w \3 ; TEXT_IDX
ELSE
dc.w 0 ; TEXT_IDX
ENDC
dc.w \1 ; FATHER_IDX
dc.w \2 ; SON_IDX
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet formulaire popup *
*-----------------------------------------------------------------------------*
GWVA_FPOP_STRUCT_HEAD: macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.MENU_POPUP,\1,\2,\3,\7
; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
; ;PROPERTIES
GWVA_FORM_STRUCT_BASE
endm
GWVA_FPOP_STRUCT_BASE: macro MAIN_IDX,POP_TREE,POP_IDX,SELECTION;PROPERTIES
IFNC '\5',''
dc.w \5 ; PROPERTIES
ELSE
dc.w 0 ; PROPERTIES
ENDC
dc.w \1 ; MAIN_IDX
dc.w \2 ; POP_TREE
dc.w \3 ; POP_IDX
dc.w \4 ; SELECTION
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet formulaire radio-bouton *
*-----------------------------------------------------------------------------*
GWVA_FRADIO_STRUCT_HEAD:macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.RADIO_BUTTON,\1,\2,\3,\7
; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
; ;PROPERTIES
GWVA_FORM_STRUCT_BASE
endm
GWVA_FRADIO_STRUCT_BASE:macro FATHER_IDX;SELECTION;PROPERTIES
IFNC '\3',''
dc.w \3 ; PROPERTIES
ELSE
dc.w 0 ; PROPERTIES
ENDC
dc.w \1 ; FATHER_IDX
IFNC '\2',''
dc.w \2 ; SELECTION
ELSE
dc.w 0 ; SELECTION
ENDC
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet formulaire click-equivalent *
*-----------------------------------------------------------------------------*
GWVA_FCLICKEQ_STRUCT_HEAD:macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.CLICK_EQUIV,\1,\2,\3,\7
; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
; ;PROPERTIES
GWVA_FORM_STRUCT_BASE
endm
GWVA_FCLICKEQ_STRUCT_BASE:macro MAIN_IDX,TARGET_IDX
dc.w \1 ; MAIN_IDX
dc.l 0 ; MAIN_PTR
dc.w \2 ; TARGET_IDX
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet formulaire texte *
*-----------------------------------------------------------------------------*
GWVA_FTEXT_STRUCT_HEAD:macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.TEXT,\1,\2,\3,\7
; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
; ;PROPERTIES
GWVA_FORM_STRUCT_BASE
endm
GWVA_FTEXT_STRUCT_BASE: macro MAIN_IDX;PROPERTIES
IFNC '\2',''
dc.w \2 ; PROPERTIES
ELSE
dc.w 0 ; PROPERTIES
ENDC
dc.w \1 ; MAIN_IDX
dc.l 0 ; MAIN_PTR
dc.l 0 ; STRING_PTR
endm
*-----------------------------------------------------------------------------*
* Macros définissant l'objet formulaire slider *
*-----------------------------------------------------------------------------*
GWVA_FSLIDER_STRUCT_HEAD:macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.SLIDER,\1,\2,\3,\7
; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
; ;PROPERTIES
GWVA_FORM_STRUCT_BASE
endm
GWVA_FSLIDER_STRUCT_BASE:macro PROPERTIES,FATHER_IDX,SON_IDX;PAGESIZE;LENGTH
dc.w \1 ; PROPERTIES
dc.l 0 ; POS
IFNC '\4',''
dc.l \4 ; PAGESIZE
ELSE
dc.l 0 ; PAGESIZE
ENDC
IFNC '\5',''
dc.l \5 ; LENGTH
ELSE
dc.l 0 ; LENGTH
ENDC
dc.w \2 ; FATHER_IDX
dc.w \3 ; SON_IDX
endm
GWVA_FSLIDER_STRUCT_GADGETS:macro ;P1_IDX;M1_IDX;P1P_IDX;M1P_IDX
IFNC '\1',''
dc.w \1 ; P1_IDX
ELSE
dc.w 0 ; P1_IDX
ENDC
IFNC '\2',''
dc.w \2 ; M1_IDX
ELSE
dc.w 0 ; M1_IDX
ENDC
IFNC '\3',''
dc.w \3 ; P1P_IDX
ELSE
dc.w 0 ; P1P_IDX
ENDC
IFNC '\4',''
dc.w \4 ; M1P_IDX
ELSE
dc.w 0 ; M1P_IDX
ENDC
endm
ifeq 1
; l'objet générique n'admet que des évènements : il n'a donc pas de macro spécifique
; la macro de création de liste d'évènements :
; sert pour : objet générique,bouton,extd_text
*GWVA_WFORM_STRUCT_OBJ_EVENT: macro EVNT,ROUTINE
* dc.w \1
* dc.l \2
* endm
*
*GWVA_WFORM_STRUCT_OBJ_END_LIST: macro
* dc.w -1
* endm
; Structure spécifique de l'objet 'bouton'
*GWVA_WFORM_STRUCT_BUTTON: macro ;STATE
* IFNC '\1',''
* dc.w \1 ; BTON_OBJ_STATE
* ELSE
* dc.w 0 ; BTON_OBJ_STATE
* ENDC
* endm
; Structure spécifique de l'objet 'pop-up'
GWVA_WFORM_STRUCT_POPUP: macro TREE_FORM,FORM_IDX,SELECTION;CHANGE_ROUTINE
dc.w \1 ; POP_OBJ_TREE_FORM
dc.w \2 ; POP_OBJ_FORM_IDX
dc.w \3 ; POP_OBJ_SELECTION
IFNC '\4',''
dc.l \4 ; POP_OBJ_CHANGE_ROUTINE
ELSE
dc.l 0 ; POP_OBJ_CHANGE_ROUTINE
ENDC
endm
; Structure spécifique de l'objet 'radio-bouton'
GWVA_WFORM_STRUCT_RBUTTON: macro ;SELECTION;CHANGE_ROUTINE
IFNC '\1',''
dc.w \1 ; RADIO_OBJ_SELECTION
ELSE
dc.w 0 ; RADIO_OBJ_SELECTION
ENDC
IFNC '\2',''
dc.l \2 ; RADIO_OBJ_CHANGE_ROUTINE
ELSE
dc.l 0 ; RADIO_OBJ_CHANGE_ROUTINE
ENDC
endm
; Structure spécifique de l'objet 'clique équivalent'
GWVA_WFORM_STRUCT_CLICK_EQUIV: macro IDX
dc.w \1 ; CLICK_EQUIV_OBJ_IDX
endm
; Structure spécifique de l'objet 'texte étendu'
GWVA_WFORM_STRUCT_EXTD_TEXT_BASE: macro ; PROPERTIES
IFNC '\1',''
dc.w \1 ; PROPERTIES
ELSE
dc.w 0 ; PROPERTIES
ENDC
endm
GWVA_WFORM_STRUCT_EXTD_TEXT_IDX: macro IDX
dc.w \1 ; IDX
endm
GWVA_WFORM_STRUCT_EXTD_TEXT_END_LIST: macro
dc.w -1
endm
;******************************************************************************
* KK
*-----------------------------------------------------------------------------*
* Macros définissant un élément de la table de touches associée à la fenêtre *
*-----------------------------------------------------------------------------*
GWVA_WIND_STRUCT_KEY: macro SHORTCUT,ROUTINE;TYPE
IFNC '\3',''
dc.w \3 ; type de raccourci (0 normal, 1=ctrl+C, 2=ctrl+V, 3=ctrl+X)
ELSE
dc.w 0 ; par défaut, raccourci normal
ENDC
dc.w \1 ; shortcut
dc.l \2 ; pointeur sur la routine
endm
GWVA_WIND_STRUCT_END_KEY: macro
dc.w -1
endm
GWVA_WFORM_STRUCT_OBJ: macro IDX,TYPE,PTR_STRUCT;SHORTCUT
dc.w \1 ; obj idx
IFNC "\4",""
dc.w \4 ; shortcut
ELSE
dc.w GWVA_NEXT_SHORTCUT_ON
GWVA_NEXT_SHORTCUT_ON set 0
ENDC
dc.w \2 ; type d'objet
dc.l \3 ; ptr struct
endm
GWVA_WFORM_STRUCT_END_LIST: macro
dc.w -1
endm
endc ; ifeq 1